home *** CD-ROM | disk | FTP | other *** search
-
- //#define WANT_STREAM
-
-
- #include "include.h"
-
- #include "newmat.h"
-
-
- /**************************** test program ******************************/
-
- void Print(const Matrix& X);
- void Print(const UpperTriangularMatrix& X);
- void Print(const DiagonalMatrix& X);
- void Print(const SymmetricMatrix& X);
- void Print(const LowerTriangularMatrix& X);
-
- void Transposer(const GenericMatrix& GM1, GenericMatrix&GM2)
- { GM2 = GM1.t(); }
-
-
- void trymat8()
- {
- // cout << "\nEighth test of Matrix package\n";
- Tracer et("Eighth test of Matrix package");
- Exception::PrintTrace(TRUE);
-
- int i;
-
-
- DiagonalMatrix D(6);
- for (i=1;i<=6;i++) D(i,i)=i*i+i-10;
- DiagonalMatrix D2=D;
- Matrix MD=D;
-
- DiagonalMatrix D1(6); for (i=1;i<=6;i++) D1(i,i)=-100+i*i*i;
- Matrix MD1=D1;
- Print(Matrix(D*D1-MD*MD1));
- Print(Matrix((-D)*D1+MD*MD1));
- Print(Matrix(D*(-D1)+MD*MD1));
- DiagonalMatrix DX=D;
- {
- Tracer et1("Stage 1");
- DX=(DX+D1)*DX; Print(Matrix(DX-(MD+MD1)*MD));
- DX=D;
- DX=-DX*DX+(DX-(-D1))*((-D1)+DX);
- #ifdef __GNUG__
- Matrix MX = Matrix(MD1);
- MD1=DX+(MX.t())*(MX.t()); Print(MD1);
- #else
- MD1=DX+(Matrix(MD1).t())*(Matrix(MD1).t()); Print(MD1);
- #endif
- DX=D; DX=DX; DX=D2-DX; Print(DiagonalMatrix(DX));
- DX=D;
- }
- {
- Tracer et1("Stage 2");
- D.Release(2);
- D1=D; D2=D;
- Print(DiagonalMatrix(D1-DX));
- Print(DiagonalMatrix(D2-DX));
- MD1=1.0;
- Print(Matrix(MD1-1.0));
- }
- {
- Tracer et1("Stage 3");
- //GenericMatrix
- LowerTriangularMatrix LT(4);
- LT << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10;
- UpperTriangularMatrix UT = LT.t() * 2.0;
- GenericMatrix GM1 = LT;
- LowerTriangularMatrix LT1 = GM1-LT; Print(LT1);
- GenericMatrix GM2 = GM1; LT1 = GM2; LT1 = LT1-LT; Print(LT1);
- GM2 = GM1; LT1 = GM2; LT1 = LT1-LT; Print(LT1);
- GM2 = GM1*2; LT1 = GM2; LT1 = LT1-LT*2; Print(LT1);
- GM1.Release();
- GM1=GM1; LT1=GM1-LT; Print(LT1); LT1=GM1-LT; Print(LT1);
- GM1.Release();
- GM1=GM1*4; LT1=GM1-LT*4; Print(LT1);
- LT1=GM1-LT*4; Print(LT1); GM1.CleanUp();
- GM1=LT; GM2=UT; GM1=GM1*GM2; Matrix M=GM1; M=M-LT*UT; Print(M);
- Transposer(LT,GM2); LT1 = LT - GM2.t(); Print(LT1);
- GM1=LT; Transposer(GM1,GM2); LT1 = LT - GM2.t(); Print(LT1);
- GM1 = LT; GM1 = GM1 + GM1; LT1 = LT*2-GM1; Print(LT1);
- }
-
- // cout << "\nEnd of eighth test\n";
- }
-